<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Empresa extends CI_Controller {

    public function index() {
        exit("No tiene los suficientes permisos");
    }

    public function conOferta($programaId) {
        $this->valida();
        if ($this->validaPermiso($programaId)) {
            $this->load->model("empresas_model", "empModel", TRUE);
            $this->load->model("maestras_model", "maestras", TRUE);
            $ofertas = $this->empModel->consOfertas();
            $transaccion = $this->maestras->transaccion();
            $this->load->view('consOferEmpresas_view', array('ofertas' => $ofertas, 'transaccion' => $transaccion));
        }
        return;
    }

    private function validaPermiso($permiso) {
        $this->load->model("validacion_model", "valida", TRUE);
        if ($this->valida->permiso($permiso, $this->session->userdata('rolId')) == "Si")
            return true;
        else
            return false;
    }

    public function valida() { //funcion para validar que aún esta activo en el sistema
        if (!$this->session->userdata('usuarioId')) {
            echo "<script>alert(\"Su session a expirado\"); parent.location = '" . site_url("inicio/index/") . "';</script>";
            exit();
            return;
        }
        return true;
    }

    public function crgT() {
        /* Funcion para carga la tabla temporal con todos los postulados para ofertas laborales
         */
        $transaccion = $this->input->post("transaccion");
        $this->load->model("maestras_model", "maestras", TRUE);
        $this->maestras->limpiaTemporal($transaccion);
        $this->maestras->cargaTemporal('cargPost', $transaccion, '');
    }

    public function crgS() {
        /* Funcion para carga la tabla temporal con todos los postulados a servicios 
         */
        $transaccion = $this->input->post("transaccion");
        $this->load->model("maestras_model", "maestras", TRUE);
        $this->maestras->limpiaTemporal($transaccion);
        $this->maestras->cargaTemporal('cargServ', $transaccion, $this->session->userdata("tablaUsuarioId"));
    }

    public function consulta($opc, $oferta, $opc2 = null) {
        $this->valida();
        $this->load->model("registro_model", "registros", TRUE);
        $this->load->model("maestras_model", "maestras", TRUE);
        $this->load->model("empresas_model", "empModel", TRUE);
        if ($opc2 != "conID")
            $usrId = $this->empModel->obtieneUsuario($opc, $oferta);
        $dep = $this->registros->buscaDepartamento();
        $ind = 'EDITA';
        switch ($opc) {
            case '3': //Institucion
                $this->load->model("oferta_model", "oferModel", TRUE);
                $institucion = $this->oferModel->extraePostuladosInfoInst($oferta);
                break;
            case '4': //Persona
                $parametros["aca"] = $this->registros->buscaAcademico();
                $this->load->model("maestras_model", "maestras", TRUE);
                $parametros["dep"] = $dep;
                $parametros["ind"] = 'UNCONSULTA';
                $parametros["transa"] = $this->maestras->transaccion();
                $parametros["rolEdita"] = 'EDITA';
                $parametros["oferta"] = 'noaplica';
                $parametros["instituciones"] = $this->maestras->instituciones();
                if ($opc2 != "conID")
                    $parametros["dataPersona"] = $this->maestras->extraeMaestras('personas', 'usuarioId', $usrId, $parametros["transa"]);
                else
                    $parametros["dataPersona"] = $this->maestras->extraeMaestras('personas', 'tableId', $oferta, $parametros["transa"]);
                $this->load->view('registroPersona_view', $parametros);
                break;
        }
        return;
    }

    public function accPostulados() {
        $this->load->model("empresas_model", "empModel", TRUE);
        $this->load->model("maestras_model", "maestras", TRUE);
        $mensaje = array();
        switch ($this->input->GET("accion")) {
            case 'cierra':
                $mensaje["mensaje"] = $this->empModel->cerrarOferta($this->session->userdata("tablaUsuarioId"), $this->input->GET("oferta"), $this->input->GET("causaNoContrato"), $this->input->GET("motivoCierre"), $this->input->GET("total"));
                $mensaje["texto"] = "Se ha cerrado correctamente la oferta laboral, creando la contratación de las personas preseleccionadas";
                break;
            case 'selecciona':
                $mensaje["transaccion"] = $this->maestras->transaccion();
                $mensaje["mensaje"] = $this->empModel->seleccionar($this->input->GET("oferta"), $this->input->GET("postulados"), $mensaje["transaccion"]);
                $mensaje["texto"] = "Se ha completado correctamente la selección de aspirantes. ¡Recuerde! únicamente se contrataran cuando usted cierre la oferta laboral";
                break;
            case 'noselecciona':
                $mensaje["mensaje"] = $this->empModel->noContratar($this->input->GET("oferta"), $this->input->GET("postulados"), $this->input->GET("causaNoContrato"));
                $mensaje["texto"] = "Se han realizado los ajustes solicitados";
                break;
        }
        echo json_encode($mensaje);
    }

//fin public function accPostulados() {

    public function accServicios() {
        /* Acciones sobre los servicios y/o asesorías */
        $this->load->model("empresas_model", "empModel", TRUE);
        $this->load->model("maestras_model", "maestras", TRUE);
        $mensaje = array();
        switch ($this->input->GET("accion")) {
            case 'cierra':
                $mensaje["mensaje"] = $this->empModel->cerrarSolServ();
                $mensaje["texto"] = "Se ha cerrado correctamente el servicio y/o asesoría";
                break;
            case 'selecciona':
                $mensaje["transaccion"] = $this->maestras->transaccion();
                $mensaje["mensaje"] = $this->empModel->seleccionar($this->input->GET("soli"), $this->input->GET("postulados"),$mensaje["transaccion"]);
                $mensaje["texto"] = "Se ha completado correctamente la selección de aspirantes. ¡Recuerde! únicamente se contrataran cuando se cierre el servicio y/o asesoría";
                break;
            case 'noselecciona':
                $mensaje["mensaje"] = $this->empModel->noContratar($this->input->GET("soli"), $this->input->GET("postulados"), $this->input->GET("causaNoContrato"));
                $mensaje["texto"] = "Se han realizado los ajustes solicitados";
                break;
        }
        echo json_encode($mensaje);
    }

//fin public function accServicios() {

    public function consultaOfertas() {
        $this->load->model("empresas_model", "empModel", TRUE);
        $ofertas = $this->empModel->consOfertas();
        $oferta = "<select id='oferta' name='oferta' onchange=\"fnOferta(this.value);\">";
        $oferta .= "<option value=''>Seleccione</option>";
        foreach ($ofertas->result() as $row) {
            $oferta .= "<option value='{$row->ofertaLaboralId}'>{$row->ofertaLaboralCargo} -> {$row->ofertaLaboralPerfil}</option>";
        }
        $oferta .= "</select>";
        echo $oferta;
    }

    public function consultaServicios() {
        $this->load->model("empresas_model", "empModel", TRUE);
        $ofertas = $this->empModel->conServAse($this->session->userdata("tablaUsuarioId"));
        $oferta = "<select id='servicio' name='servicio' onchange=\"fnOferta(this.value);\">";
        $oferta .= "<option value=''>Seleccione</option>";
        foreach ($ofertas->result() as $row) {
            $oferta .= "<option value='{$row->solServyAseId}'>{$row->solServyAseNombre}</option>";
        }
        $oferta .= "</select>";
        echo $oferta;
    }

    public function conServAse($programaId) {
        $this->valida();
        if ($this->validaPermiso($programaId)) {
            $this->load->model("empresas_model", "empModel", TRUE);
            $this->load->model("maestras_model", "maestras", TRUE);
            $servicios = $this->empModel->conServAse($this->session->userdata("tablaUsuarioId"));
            $transaccion = $this->maestras->transaccion();
            $this->load->view('consServAseEmpresas_view', array('servicios' => $servicios, 'transaccion' => $transaccion));
        }
        return;
    }

    public function consInstitucion($instiId,$haceContacto = null) {
        $this->valida();
        $this->load->model("registro_model", "registros", TRUE);
        $this->load->model("maestras_model", "maestras", TRUE);
        $parametros = array();
        $parametros["dep"] = $this->registros->buscaDepartamento();;
        $parametros["ind"] = "";
        $parametros["rolEdita"] = 'EDITA';
        $parametros["unicaCons"] = 'Si';
        $parametros["dataInsti"] = $this->maestras->extraeMaestras('instituciones', 'tableId', $instiId);
        $parametros["serviciosInclu"] = $this->registros->getServInclu();
        $parametros["serviciosIncluIns"] = $this->registros->getServIncluInstitucion($instiId);
        if($haceContacto == "Si"){ //esto indica que se llamo desde la consulta de servicios por ciudades, entonces se crea un registro que hubo un contacto
            $this->registros->creaPruebaSolicitud($instiId,$this->session->userdata("tablaUsuarioId"));
        }
        $this->load->view('registroInstitucion_view', $parametros);
    }

}
